じゃんけんゲームを作成します。
基本的なルールですがみなさん子供の頃に一度はやったことあると思います。
勝敗を真理値表にするとこうなります。
表はマトリックスともいうことはあります。
自分 | 相手 | 勝敗 |
グー | グー | アイコ |
グー | チョキ | 勝ち |
グー | パー | 負け |
チョキ | グー | 負け |
チョキ | チョキ | アイコ |
チョキ | パー | 勝ち |
パー | グー | 勝ち |
パー | チョキ | 負け |
パー | パー | アイコ |
グー0
チョキ1
パー2
仕様
ボタンを押すと結果が文字列として表示される。
引き分けの場合はアイコと表示される。
勝ちの場合は勝ちと表示される。
負けの場合は負けと表示される。
コンピューターはランダムに手を出してくる。
サンプルソース
———————————————————————————————————————
Public Class Form1
Dim rad As New System.Random
Dim com As Integer = rad.Next(3)
Dim i As Integer
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
i = 0
play()
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
i = 1
play()
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
i = 2
play()
End Sub
Sub play()
com = rad.Next(3)
If com = i Then
Label1.Text = “あいこ”
ElseIf i = 0 And com = 2 Or
i = 1 And com = 0 Or
i = 2 And com = 1 Then
‘負け
Label1.Text = “負け”
Else
‘勝ち
Label1.Text = “勝ち”
End If
End Sub
End Class
———————————————————————————————————————
ボタンの処理をまとめました。
サンプルソース
———————————————————————————————————————
Public Class Form1
Dim user As Integer
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click, Button3.Click
Dim btn As Button = DirectCast(sender, Button)
If btn.Text = “グー” Then
user = 0
ElseIf btn.Text = “チョキ” Then
user = 1
Else
user = 2
End If
play()
End Sub
Sub play()
Dim com As Integer = New Random().Next(3)
If com = user Then
Label1.Text = “あいこ”
ElseIf user = 0 And com = 2 Or
user = 1 And com = 0 Or
user = 2 And com = 1 Then
‘負け
Label1.Text = “負け”
Else
‘勝ち
Label1.Text = “勝ち”
End If
End Sub
End Class
———————————————————————————————————————
イベントは Handles の後ろにコントロールを足すことにより複数書けます。
受け取ったボタンのイベントをキャストして変数に格納してます。
このプログラムは
ゲーム作りで学ぶVisual Basic 2010入門
を参考にそのまま書くのはますいような気がしたので一部書き直してます。
この本ではクラスを使って書かれております。
クラスだけではなく
ポリモフィズム
インターフェース
抽象クラスにもサンプルを使って解説されてます。